package lang

import (
	"database/sql"
	"database/sql/driver"
	"encoding"
	"encoding/json"
	"fmt"
)

type base interface {
	fmt.Stringer
	encoding.BinaryMarshaler
	encoding.BinaryUnmarshaler
	encoding.TextMarshaler
	encoding.TextUnmarshaler
	json.Marshaler
	json.Unmarshaler
	sql.Scanner
	driver.Valuer
}

//type String interface {
//	base
//	Concat(new ...string) String
//	SubString(from, to int) String
//	SubStringFrom(from int) String
//	SubStringTo(to int) String
//	GetInt() (int, error)
//	GetBytes() []byte
//	Hash() []byte
//	HashString() string
//	EqualsHash(hash string) bool
//	Equals(other string) bool
//	Base64Encode() string
//	Base64Decode(b64 string) String
//	EqualsIgnoreCase(other string) bool
//	Split(sep string) Slice
//	SplitN(sep string, n int) Slice
//	ToLower() String
//	ToUpper() String
//	FirstLetterUpper() String
//	Replace(old, new string, n int) String
//	ReplaceAll(old, new string) String
//	Contains(substr string) bool
//	StartWith(substr string) bool
//	EndWith(substr string) bool
//	IndexOf(substr string) int
//	LastIndexOf(substr string) int
//	Length() int
//	Trim(sep string) String
//	Trims() String
//	IsEmpty() bool
//	Matches(pattern string) (bool, error)
//	RemovePrefix(prefix string) String
//	RemoveSuffix(suffix string) String
//	Format(args ...interface{}) String
//	CamelCase() String
//	SnakeCase() String
//	KebabCase() String
//}
